/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.gepro.pessoa.handler;

import br.ifrr.gepro.pessoa.bean.FuncaoTecBean;
import br.ifrr.gepro.pessoa.dao.FuncaoTecDao;
import br.ifrr.gepro.util.DAOException;
import br.ifrr.gepro.util.JsfUtil;
import br.ifrr.gepro.util.Navegacao;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author rafael
 */
@ManagedBean(name = "funcaotec")
@SessionScoped
public class FuncaoTecMB {

    private FuncaoTecBean novafuncao = new FuncaoTecBean();
    private ArrayList<FuncaoTecBean> listaFuncoes = new ArrayList<FuncaoTecBean>();

    public String preparaCadastro() {
        novafuncao = new FuncaoTecBean();
        return Navegacao.paginaCadFuncaoTecnico;
    }
    
    public String preparaListar(){
        return null;
    }

    public List<FuncaoTecBean> getFuncoes() throws DAOException {
        return new FuncaoTecDao().listar();

    }

    public String editar() throws DAOException {
        int f = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idFuncao"));
        novafuncao = (FuncaoTecBean) new FuncaoTecDao().selecionar(f);
        return Navegacao.paginaCadFuncaoTecnico;
    }
    public String excluir() throws DAOException {
        try{
        int f = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idFuncao"));
        new FuncaoTecDao().excluir(new FuncaoTecBean(f));
        JsfUtil.showMessageInfo("Operação realizada com sucesso!");}
        catch (Exception e){
            
            System.out.println(e.getMessage());
            System.out.println(e.getCause());
            JsfUtil.showMessageErro("Erro!");
        
        }
        return null;
    }
    
    public List<SelectItem> getFuncoesCombo() throws DAOException {
        List<SelectItem> lista = new ArrayList<SelectItem>();
        for (FuncaoTecBean f : getFuncoes()) {
            lista.add(new SelectItem(f.getIdFuncao(), f.getDescricao()));
        }
        return lista;
    }

    public String salvar() throws DAOException {
        if(novafuncao.getIdFuncao() == null){
        new FuncaoTecDao().inserir(getNovafuncao());
        } else {
        new FuncaoTecDao().alterar(getNovafuncao());
        }
        JsfUtil.showMessageInfo("Cadastro realizado com sucesso!");
        setNovafuncao(new FuncaoTecBean());
        return Navegacao.paginaListFuncaoTec;
    }

    /**
     * @return the novafuncao
     */
    public FuncaoTecBean getNovafuncao() {
        return novafuncao;
    }

    /**
     * @param novafuncao the novafuncao to set
     */
    public void setNovafuncao(FuncaoTecBean novafuncao) {
        this.novafuncao = novafuncao;
    }

    public ArrayList<FuncaoTecBean> getListaFuncoes() throws DAOException {
        listaFuncoes = (ArrayList<FuncaoTecBean>) new FuncaoTecDao().listar();
        return listaFuncoes;
    }

    public void setListaFuncoes(ArrayList<FuncaoTecBean> listaFuncoes) {
        this.listaFuncoes = listaFuncoes;
    }
    
}
